//对于axios进行二次封装
import store from "@/store";
import axios from "axios";
// 引入进度条
import nprogress from "nprogress";
// 引入进度条样式
import "nprogress/nprogress.css"


const requests = axios.create({
    // 配置对象
    baseURL:"/api",

    timeout:5000
});

// /请求拦截器:将来项目中【N个请求】，只要发请求,会触发请求拦截器!!!
requests.interceptors.request.use((config)=>{
    // 需要携带uuid给服务器
    if(store.state.detail.uuid_token){
    config.headers.userTempId = store.state.detail.uuid_token
    }
      
 
    // 需要携带token带给服务器获取用户信息
    if(store.state.user.token){
        config.headers.token = store.state.user.token

    }

    nprogress.start();
    return config;

});

//响应拦截器：请求数据返回会执行
requests.interceptors.response.use((res)=>{
     //res:实质就是项目中发请求、服务器返回的数据
    //进度条结束
    nprogress.done();
    return res.data;
},(error)=>{
//温馨提示:某一天发请求,请求失败,请求失败的信息打印出来
   return   Promise.reject(new Error('error'));
},)


// requests.interceptors.response.use((res) => {
//     //res:实质就是项目中发请求、服务器返回的数据
//     //进度条结束
//     nprogress.done();
//     return res.data;
// }, (err) => {
//     //温馨提示:某一天发请求,请求失败,请求失败的信息打印出来
//     alert(err.message);
//     //终止Promise链
//     return new Promise();
// });
// 对外暴露
export default requests;